﻿using System.Collections;
using System.Collections.Generic;
using UnityEngine;
using UnityEngine.UI;
using System;

namespace KFGame
{

    [Flags]
    public enum LocationPoint
    {
        Left = 0x1,
        Right = 0x2,
        Top = 0x4,
        Bottom = 0x8,
        Center = 0x10
    }
    public class KFMessage : MonoBehaviour
    {

        public new string name = "kfmessage";
        public Text titlev;
        public Text contextv;

        public LocationPoint pointlocation = LocationPoint.Bottom | LocationPoint.Left;

        // Start is called before the first frame update
        public void open()
        {
            gameObject.SetActive(true);
            if ((pointlocation & LocationPoint.Center) == LocationPoint.Center)
            {
                toCenter();
            }

        }

        public void toCenter()
        {
            RectTransform rect = GetComponent<RectTransform>();
            rect.anchoredPosition = new Vector2(0, 0);

        }
        public void hidden()
        {
            gameObject.SetActive(false);
        }
        public void setMessage(string msg, string title = null)
        {
            if (title != null)
                titlev.text = title;
            contextv.text = msg;
        }

        public void closeMessage()
        {
            hidden();
        }
        public void showMessage(string msg, string title = null, float delayed = 0)
        {
            setMessage(msg, title);

            open();

            if (delayed > 0)
                StartCoroutine(showtime(delayed));
        }
        public IEnumerator showtime(float t)
        {
            yield return new WaitForSeconds(t);
            hidden();
            toDestroy();
        }

        public void toDestroy()
        {
            Destroy(gameObject, 0.1f);
        }

        void Start()
        {

        }

        // Update is called once per frame
        void Update()
        {

        }
    }
}